﻿--- Eliminar las funciones existentes sin importar el numero ni tipo de parametros
SELECT * FROM "DropFunction_AWIL"('FuncSeguridadRolPermiso');
--- crear una nueva funcion
CREATE FUNCTION "FuncSeguridadRolPermiso"(
	 IN	"@OP" CHARACTER VARYING(64)
	,IN	"@paramAux" TEXT
	,INOUT	"@id" INTEGER
	,INOUT	"@fechaGrab" timestamp
	,INOUT	"@codRol" character varying(16)
	,INOUT	"@codPermiso" character varying(128)	
)RETURNS 
	SETOF RECORD
AS $$ 
DECLARE
	Auxiliar TEXT;
BEGIN
	
	/*INSERTAR NUEVO REGISTRO*/
	IF "@OP"='insert' THEN

		-- Grabo el registro
		INSERT INTO "SeguridadRolPermiso" ("codRol","codPermiso")
		VALUES	 ("@codRol","@codPermiso");
		
	RETURN;
	END IF;

	/*ELIMINAR REGISTRO BY CODROL*/
	IF "@OP"='deleteByCodRol' THEN

		--- Borro el registro
		DELETE FROM "SeguridadRolPermiso" 
		WHERE "codRol"="@codRol";

	RETURN;
	END IF;


--- Controlo que se haya digitado el OP correctamente
	IF "@OP" IS NOT NULL THEN
		Auxiliar = 'El OP "' || "@OP" || '" No existe, verifique.';
		RAISE EXCEPTION '%', Auxiliar;
	RETURN;
	END IF;
END;
$$ LANGUAGE 'plpgsql';
